﻿var Pager = {
    PageSize: 10, //页面显示长度
    PageCount: 0, //页面总数 默认为第一页
    RecountCount: 0, //记录总数
    CurrentPage: 1, //当前页码
    ParameterLen: 0,
    Paremeters: {},
    InitMethod: function () { }

};

var Class = {
    create: function () {
        return function () { this.init.apply(this, arguments); }
    }
}

var Pagger = Class.create();
Pagger.prototype = {
    init: function (Parameters, InitData) {
        Pager.ParameterLen = 0;
        for (var i in Parameters) {
            Pager.ParameterLen++;
        }

        $.extend(Pager.Paremeters, Parameters);

        Pager.InitMethod = InitData;
    }
}

//        SetOptions: function(options) {
//            this.options = //默认值
//            {
//            PageSize: 10, //页面显示长度
//            PageCount: 0, //页面总数
//            RecountCount: 0, //记录总数
//            CurrentPage: 0//当前页码
//        }
//        $.extend(this.options, options || {});
//    },
function ClearChecked() {
    // $("input:checked").attr("checked", false);
    $("#auditingChk").attr("checked", false);
    $("#TableList").find("checkbox").attr("checked", false);

}
function PageIndexChanging(PageNo) {
    ClearChecked();
    //初始化分页
    if (PageNo == 0) {
        Pager.CurrentPage = 1;
        JsonhandlerCool.cache = false;
        var para = "{params" + (Pager.ParameterLen - 2) + ":" + Pager.CurrentPage + "," + "params" + (Pager.ParameterLen - 1) + ":" + Pager.PageSize + "}";
        //            para = JSON.stringify(para);
        //            para = JSON.parse(para);
        para = eval('(' + para + ')')
        //            alert(para);
        $.extend(Pager.Paremeters, para);
        Jsonhandler.AjaxPost(Pager.Paremeters, function (result) {
            Pager.RecountCount = result.total;
            Pager.PageCount = Math.ceil(Pager.RecountCount / Pager.PageSize);
            //首页和末页
            $("#btnFirst").click(function () { PageIndexChanging(1); });
            $("#btnLast").click(function () { PageIndexChanging(Pager.PageCount) });
            // InitPagerControl();//屏蔽掉select控件选择页数
            //初始化数据
            Pager.InitMethod(result.data);

            $("#CurrentPage").html("当前页:" + Pager.CurrentPage + "/" + (Pager.PageCount == 0 ? 1 : Pager.PageCount));
            try {
                $("#PageSel").val(Pager.CurrentPage);
            }
            catch (e) {
            }

        });
        return;
    } //判断页码
    else if (PageNo <= 1) {
        Pager.CurrentPage = 1;


    }
    else if (PageNo >= Pager.PageCount) {
        if (Pager.PageCount == 0) {
            Pager.CurrentPage = 1;
        }
        else {
            Pager.CurrentPage = Pager.PageCount;
        }

    }
    else {
        Pager.CurrentPage = PageNo;

    }
    $("#CurrentPage").html("当前页:" + Pager.CurrentPage + "/" + (Pager.PageCount == 0 ? 1 : Pager.PageCount));
    $("#PageSel").val(Pager.CurrentPage);

    var para = "{params" + (Pager.ParameterLen - 2) + ":" + Pager.CurrentPage + "," + "params" + (Pager.ParameterLen - 1) + ":" + Pager.PageSize + "}";
    //            para = JSON.stringify(para);
    //            para = JSON.parse(para);
    para = eval('(' + para + ')')
    //            alert(para);
    $.extend(Pager.Paremeters, para);
    Jsonhandler.cache = false;
    //读取数据
    Jsonhandler.AjaxPost(Pager.Paremeters, function (result) {
        Pager.RecountCount = result.total;
        Pager.PageCount = Math.ceil(Pager.RecountCount / Pager.PageSize);
        Pager.InitMethod(result.data);
    });
}


//初始化选择跳转控件
function InitPagerControl() {
    //        $("#PageSel").find("option").remove();
    document.getElementById("PageSel").innerHTML = "";
    for (var i = 1; i <= Pager.PageCount; i++) {
        $("#PageSel").append("<option value='" + i + "'" + ">第" + i + "页</option>");
    }

}

function GoPage() {
    PageIndexChanging($("#txtJumpPage").val());
    $("#txtJumpPage").val("")
}

function JumpPageKeyPress() {
    if (event.keyCode > 57 || event.keyCode < 48) {
        event.keyCode = 0;
    }
}